package com.example.bluetoothdemo;

import android.content.ComponentName;
import android.content.Context;
import android.os.RemoteException;
import android.support.v4.media.MediaBrowserCompat;
import android.support.v4.media.MediaMetadataCompat;
import android.support.v4.media.session.MediaControllerCompat;
import android.support.v4.media.session.PlaybackStateCompat;
import android.util.Log;
/**
 * 蓝牙音乐助手类
 * 作用：封装 MediaBrowserCompat，负责连接车机底层的 A2DP 蓝牙服务，并把数据回调给 UI。
 */
public class BtMusicHelper {
    private static final String TAG="BtMusicHelper";
    private static final String BT_MEDIA_BROWSER_SERVICE="com.android.bluetooth.a2dpsink.mbs.A2dpMediaBrowserService";
    private final Context mContext;

    //媒体浏览器，用于连接服务
    private MediaBrowserCompat mMediaBrowser;
    //媒体控制器：用于发送 播放/暂停的指令
    private MediaControllerCompat mMediaController;
    //定义一个接口，让 Activity 能收到状态更新
    // 这样 BtMusicHelper 收到蓝牙数据后，能通知 MainActivity 更新界面
    private MusicUpadateListener mListener;

    // 3. 定义接口：UI需要知道什么？(歌名、播放状态)

    public interface MusicUpadateListener{
        void onMetadataChanged(MediaMetadataCompat metadata);
        void onPlaybackStateChanged(PlaybackStateCompat state);
    }
    //构造函数
    public BtMusicHelper(Context context,MusicUpadateListener listener){
        mContext=context;
        mListener=listener;
    }
    public void onStart(){}
    public void onStop(){}

    public MediaControllerCompat.TransportControls getTransportControls(){

        return null;
    }
    private final MediaBrowserCompat.ConnectionCallback mConnectionCallback =new   MediaBrowserCompat.ConnectionCallback(){
        @Override
        public void onConnected(){
            //TODO 连上了 该去拿 Cntroller 了
        }
    };

    private final MediaControllerCompat.Callback mControllerCallback=new MediaControllerCompat.Callback() {
        @Override
        public void onMetadataChanged(MediaMetadataCompat metadata){

        }
    };

}
